package com.lesama.exception;

import java.io.FileNotFoundException;
import java.io.FileReader;

/*
 * 自定义编译时异常：
 *   定义一个异常类继承Exception
 *   重写构造器
 * 自定义运行时异常
 *   定义一个异常类继承Exception
 *   重写构造器
 * Throwable的常用方法：
 *   public String getMessage(): 获取异常的错误原因
 *   public void printStackTrace(): 展示完整的异常错误信息
 * 子类重写父类方法时，不能抛出父类没有的异常，或者比父类更大的异常
 * */
public class ExceptionDemo3 {
    public static void main(String[] args) {
        System.out.println("start");
        try {
            FileReader fr = new FileReader("D:\\A.txt");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println("end");
    }
}

class Fu {
    public void show() throws FileNotFoundException{
        System.out.println("fu");
    }
}
// 子类中最好使用try catch处理异常，否则子类重写的方法抛出异常，父类中也要抛出相应的异常
class Zi extends Fu {
    @Override
    public void show() throws FileNotFoundException {
    }
}